namespace OasisCiq.Xal
{
    using System.Collections.Specialized;
    using CommonTypes;
    using External;
    using XS;

    /// <summary>
    /// Data associated with the name of the country in whatever form available,
    /// e.g. full, abbreviation, common use, code of the country, etc.
    /// </summary>
    public class CountryNameElement : CTString, IAbbreviationGroup, IExtendedAttributes
    {
        public CountryNameElement(string value)
            : base(value)
        {
        }

        public XSBoolean Abbreviation { get; set; }

        /// <summary>
        /// Semantics of data associated with name.
        /// </summary>
        public CountryNameTypeList NameType { get; set; }

        /// <summary>
        /// Name of the country represented as a code
        /// </summary>
        public CountryNameCodeList NameCode { get; set; }

        /// <summary>
        /// Type of code used to represent name of country, e.g. iso-3166
        /// </summary>
        public CTString NameCodeType { get; set; }

        public NameValueCollection ExtendedAttributes { get; set; }
    }
}